Search results for "Functional programming"

showing 10 items of 20 documents

Some reflections on semantic–pragmatic cycles

2020

Abstract This paper explores novel ways to consider semantic–pragmatic cycles using a dual strategy: an inwards strategy, whereby the distinctive traits of a pragmatic cycle are established, and an outwards strategy, whereby the categories that delimit semantic–pragmatic cycles are described. The result of this exploration is the distinction between “pragmatic cycle”, “replication”, “concomitance” and “paradigmatic increase” as four different yet related processes. In addition, this study integrates Construction Grammar into the description of each process and shows that the study of semantic–pragmatic cycles can benefit from a constructional approach, adopting Traugott and Trousdale’s (201…

050101 languages & linguisticsLinguistics and LanguageFunctional programmingStructuralism (philosophy of science)Process (engineering)05 social sciencesDiasystem0501 psychology and cognitive sciencesSociologyConstruction grammarDUAL (cognitive architecture)Language and LinguisticsLinguisticsJournal of Historical Pragmatics
researchProduct

Teaching types with a cognitively effective worked example format

2015

AbstractTeaching functional programming as a second programming paradigm is often difficult as students can have strong preconceptions about programming. When most of these preconceived ideas fail to be confirmed, functional programming may be seen as an unnecessarily difficult topic. A typical topic that causes such difficulties is the language of types employed by many modern functional languages. In this paper, we focus on addressing this difficulty through the use of step-by-step calculations of type expressions. The outcome of the study is an elaboration of a worked example format and a methodical approach for teaching types to beginner functional programmers.

Cognitive scienceta113Functional programmingFocus (computing)Computer scienceteaching methodsProgramming paradigmfunctional programmingOutcome (game theory)SoftwareElaborationJournal of Functional Programming
researchProduct

Flipping and Blending : An Action Research Project on Improving a Functional Programming Course

2016

This article reports on an action research project on improving a functional programming course by moving toward a practical and flexible study environment—flipped and blended classroom. Teaching the topic of functional programming was found to be troublesome using a traditional lectured course format. The need to increase students’ amount of practice emerged while subsequent challenges relating to students’ independent practical coursework were observed. Particular concerns relating to group work, learning materials, and the attribute of flexibility were investigated during the third action research cycle. The research cycle was analyzed using a qualitative survey on students’ views, teach…

Cooperative learningKnowledge managementGeneral Computer ScienceComputer sciencefunctional programming02 engineering and technologyFlipped classroomEducation020204 information systemsComputingMilieux_COMPUTERSANDEDUCATION0202 electrical engineering electronic engineering information engineeringMathematics educationflipped classroomta516Action researchGroup workta113Independent studybusiness.industry05 social sciences050301 educationblended learningindependent studyBlended learningaction researchCourseworkActive learningbusiness0503 educationACM Transactions on Computing Education
researchProduct

On the Power of Tree-Walking Automata

2000

Tree-walking automata (TWAs) recently received new attention in the fields of formal languages and databases. Towards a better understanding of their expressiveness, we characterize them in terms of transitive closure logic formulas in normal form. It is conjectured by Engelfriet and Hoogeboom that TWAs cannot define all regular tree languages, or equivalently, all of monadic second-order logic. We prove this conjecture for a restricted, but powerful, class of TWAs. In particular, we show that 1-bounded TWAs, that is TWAs that are only allowed to traverse every edge of the input tree at most once in every direction, cannot define all regular languages. We then extend this result to a class …

Discrete mathematicsConjectureRegular languageComputer scienceDeterministic automatonFormal languageTransitive closureTree (set theory)Query languageMonad (functional programming)Path expressionFirst-order logicAutomaton
researchProduct

Nondeterministic operations on finite relational structures

1998

Abstract This article builds on a tutorial introduction to universal algebra for language theory (Courcelle, Theoret. Comput. Sci. 163 (1996) 1–54) and extends it in two directions. First, nondeterministic operations are considered, i.e., operations which give a set of results instead of a single one. Most of their properties concerning recognizability and equational definability carry over from the ordinary case with minor modifications. Second, inductive sets of evaluations are studied in greater detail. It seems that they are handled most naturally in the framework presented here. We consider the analogues of top-down and bottom-up tree transducers. Again, most of their closure propertie…

Discrete mathematicsFinite-state machineGeneral Computer ScienceComputer scienceLogicFormal languages (recognizable and context-free sets transducers)Unbounded nondeterminismMonad (functional programming)Symbolic computationHypergraphsFirst-order logicLogical theoryDecidabilityTheoretical Computer ScienceNondeterministic algorithmAlgebraDeterministic automatonFormal languageUniversal algebraEquivalence relationTree transducersRewritingComputer Science(all)Theoretical Computer Science
researchProduct

A framework for evaluating student interaction with automatically assessed exercises

2016

Automatic assessment has become a widely used technique in programming courses. Even though modern techniques can practically ensure functional correctness of student solutions, it is less clear how to promote quality interaction between students and the automatic assessment systems. In this article we propose a simple analytical framework for studying student interaction with the automatic assessment systems and use it to study our functional programming course.

Functional programmingCorrectnessMultimediabusiness.industryComputer sciencemedia_common.quotation_subject05 social sciencesLearning analytics050301 education02 engineering and technologycomputer.software_genre020204 information systemsComputingMilieux_COMPUTERSANDEDUCATION0202 electrical engineering electronic engineering information engineeringQuality (business)Software engineeringbusiness0503 educationcomputermedia_commonProceedings of the 16th Koli Calling International Conference on Computing Education Research
researchProduct

Towards CNC Programming Using Haskell

2004

Recent advances in Computerized Numeric Control (CNC) have allowed the manufacturing of products with high quality standards. Since CNC programs consist of a series of assembler-like instructions, several high-level languages (e.g., AutoLISP, APL, OMAC) have been proposed to raise the programming abstraction level. Unfortunately, the lack of a clean semantics prevents the development of formal tools for the analysis and manipulation of programs. In this work, we propose the use of Haskell for CNC programming. The declarative nature of Haskell provides an excellent basis to develop program analysis and manipulation tools and, most importantly, to formally prove their correctness.

Functional programmingCorrectnessProgramming languageSemantics (computer science)Computer sciencecomputer.software_genreFormal methodsProgram analysisHigh-level programming languageProgramming abstractionHaskellcomputerAutoLISPcomputer.programming_language
researchProduct

MLOG: a strongly typed confluent functional language with logical variables

1994

Poirriez, V., MLOG: a strongly typed confluent functional language with logical variables, Theoretical Computer Science 122 (1994) 201-223. A new programming language called MLOG is introduced. MLOG is a conservative extension of ML with logical variables. To validate our concepts, a compiler named CAML Light FLU0 was implemented. Numerous examples are presented to illustrate the possibilities of MLOG. The pattern matching of ML is kept for X-calculus bindings and an unification primitive is introduced for the logical variables bindings. A suspension mechanism allows cohabitation of pattern-matching and logical variables, Although the evaluation strategy for the application is fixed, the or…

Functional programmingEvaluation strategyTheoretical computer scienceGeneral Computer ScienceCamlUnificationcomputer.software_genreOperational semanticsTheoretical Computer ScienceAlgebraTheoryofComputation_MATHEMATICALLOGICANDFORMALLANGUAGESConservative extensionPattern matchingCompilercomputercomputer.programming_languageMathematicsComputer Science(all)Theoretical Computer Science
researchProduct

Making teaching of programming learning-oriented and learner-directed

2011

Programming education has been traditionally realized in the form of lecturing, but other approaches are under discussion. These emphasize active participation on the part of students, and, as a research activity, consider pedagogic questions holistically. We join this discussion by stating a course design in which we promote a learning-oriented study culture where learning should not be characterized principally as the task of meeting some predefined completion requirements. Moreover, we want our course to be learner-directed meaning that students should take control over their own learning process. Grounded on these goals, this discussion paper gives us a starting point for a subsequent a…

Functional programmingProgramming educationPoint (typography)Computer scienceProcess (engineering)PedagogyControl (management)ComputingMilieux_COMPUTERSANDEDUCATIONMathematics educationAction researchMeaning (linguistics)Task (project management)Proceedings of the 11th Koli Calling International Conference on Computing Education Research
researchProduct

The iconic interface for the PIctorial C language

2003

Iconic environments intend to provide expressive tools to implement, to debug and to execute programs. Moreover its pictorial constructs guide the user to design algorithms in an interactive fashion. Visual interfaces are especially required whenever programs run on an heterogeneous and reconfigurable multiprocessor system oriented to image analysis. Pictorial tools help the user to control the scope of variables, and the distribution of the tasks into the processors. In this paper, the general design, the visual-syntax, and the implementation of the first prototype of an iconic user interface for the PIctorial C Language (PICL) are described. >

Functional programmingSettore INF/01 - InformaticaInterface (Java)business.industryProgramming languageComputer sciencemedia_common.quotation_subjectcomputer.software_genreVisualizationDebuggingIconic Interface Visual languages visual programming Algorithm design and analysis Graphics Image analysis Computer languages Flowcharts Prototypes Visualization Functional programming AutomataGraphicsUser interfacebusinesscomputerScope (computer science)Graphical user interfacemedia_commonProceedings IEEE Workshop on Visual Languages
researchProduct